var suministro=null;
var monto_redondeo = 0;
var MONTO_REDONDEO_MAX=0.05;

$(document).ready(function() {
	//autocompletes
	//autocomplete_cuentas_digito("row.idCuentaContable");
	$("#ctaCtble").creaAutocompletable('get_cuentas_digito',{id:"idCuentaContable",desc:"descripcion"},recibeData,false,2 );
	$("#descrip_cuenta").creaAutocompletable('get_cuentas_descripcion',{id:"idCuentaContable",desc:"descripcion"},recibeData,true,1 );
	$("#desc_proveedor").creaAutocompletable('get_proveedores',{id:"codProveedor",desc:"razon"},recibeProveedor,true,1 );
	$("#desc_trabajador").creaAutocompletable('get_trabajadores',{id:"dni",desc:"full_nombre"},recibeTrabajador,true,1 );
	$("#desc_unidad_org").creaAutocompletable('get_unidades',{id:"codigo",desc:"descripcion"},recibeUnidades,true,1 );
	$("#desc_centro_costos").creaAutocompletable('get_centros_costos',{id:"codigo",desc:"descripcion"},recibeCentroCosto,true,1,{cod_uni : function() {return $("#cod_unidad_org").val();}} );
	$("#desc_proyectos").creaAutocompletable('get_proyectos',{id:"id_proyecto",desc:"nom_proyecto"},recibeProyecto,true,1 );
	//fin autocompletes
	
	//validaciones
	$("#detalleRendicionForm").validate();
	/*$.mask.options =  {
		autoTab: false
	};	*/
		
	$.mask.masks = $.extend($.mask.masks,{
		'integer'   : { mask : '999999999999', type : 'reverse',defaultValue:'0' },
		'decimal'   : { mask : '99,999.999.999.999', type : 'reverse', defaultValue: '000' },
		'decimales_2'   : { mask : '99.99999999999', type : 'reverse', defaultValue: '000' },
		'decimal-us'    : { mask : '99.999,999,999,999', type : 'reverse', defaultValue: '000' }
		});
	 $('input:text').setMask();
	 $('#ruc_proveedor').setMask({mask:'9', type:'repeat', 'maxLength': 11});
	 $('#dni_trabajador').setMask({mask:'9', type:'repeat', 'maxLength': 8});
	 
	//fin validaciones
	
	// eventos click
	$("#chk_inversion").click(muestraInversion);
	$("#rb_usuario").click(muestraPanelUsuario);
	$("#rb_proveedor").click(muestraPanelUsuario);
	// eventos click
	
	//eventos key
	$('#desc_unidad_org').keyClearValComponente("cod_unidad_org,cod_centro_costo,desc_centro_costos");
	$('#desc_centro_costos').keyClearValComponente("cod_centro_costo");
	$('#descrip_cuenta').keyClearValComponente("ctaCtble");
	$('#ctaCtble').keyClearValComponente("descrip_cuenta");
	$('#desc_proveedor').keyClearValComponente("ruc_proveedor");
	$('#ruc_proveedor').keyClearValComponente("desc_proveedor");
	$('#desc_trabajador').keyClearValComponente("dni_trabajador");
	
	$(".panel_proyecto").hide();
	$(".panel_usuario").hide();
	
	// calendario
	$('input.fecha_detalle').datepicker();
	
	$("#cmb_impuesto").change(obtieneImpuesto);
	$("#monto_subtotal").keyup(obtieneImpuesto);
	$("#monto_otros").keyup(sumaTotales);
	$("#ruc_proveedor").keyup(buscaProveedor);
	$("#dni_trabajador").keyup(buscaTrabajador);
					
});


/*----------funciones------------*/
function buscaProveedor(e) {
	$('#desc_proveedor').val("");
	if (e.keyCode == 13) {
		this.blur();
		var ruc = $(this).val();
		if ($(this).val().length > 0) {
			$.getJSON("getProveedor",{cod_proveedor : ruc},
							function(data) {	
								if (data.razon != null) {
									$('#desc_proveedor').focus();
									$('#desc_proveedor').val($.trim(data.razon));
								}
								else {
									Utiles_MensajesDialogo.showMensajeAlerta("El Proveedor : "+ ruc +" no existe");
									$('#ruc_proveedor').val("");
									$('#ruc_proveedor').focus();
								}
							});
		}
	}
}

function buscaTrabajador(e) {
	$('#desc_trabajador').val("");
	if (e.keyCode == 13) {
		this.blur();
		if ($(this).val().length > 0) {
			$.getJSON("getTrabajadorCodigo",{dni_trabajador : $(this).val()},
							function(data) {	
								if (data.apellidos != null) {
									$('#desc_trabajador').focus();
									$('#desc_trabajador').attr("value",
											$.trim(data.apellidos+" "+data.nombres));
								}
								else {
									Utiles_MensajesDialogo.showMensajeAlerta("El trabajador no existe");
									$('#dni_trabajador').val("");
								}
							});
		}
	}
}

function redondear(cantidad, decimales) {
	 var cantidad = parseFloat(cantidad);
	 var decimales = parseFloat(decimales);
	 decimales = (!decimales ? 2 : decimales);
	 return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
} 

function sumaTotales(){
	var sub_total = parseFloat($("#monto_subtotal").val());
	var monto_impuestos =parseFloat($("#monto_impuesto").val());
	var monto_otros=parseFloat($("#monto_otros").val());
	var monto_total = 	redondear(sub_total+monto_impuestos+monto_otros);
	//var monto_total = 	redondear(sub_total+monto_impuestos);
	$('#monto_total').val(monto_total); 		
}

function agregaRedondeo(){
	if(monto_redondeo < MONTO_REDONDEO_MAX){
		var monto_impuestos =parseFloat($("#monto_impuesto").val());
		if(monto_impuestos > 0){
			monto_redondeo = redondear(monto_redondeo+0.01,2);
			monto_impuestos	= redondear(monto_impuestos + 0.01,2);
			$("#monto_impuesto").val(monto_impuestos);
			sumaTotales();
		}
	}
	
}

function activaOtros(){
	$("#monto_otros").removeClass("caja_texto_gris");
	$("#monto_otros").removeAttr("readonly");
}

function restableceOtros(){
	$("#monto_otros").addClass("caja_texto_gris");
	$("#monto_otros").attr("readonly","readonly");
	$("#monto_otros").val("0.00");
	sumaTotales();
}

function restaRedondeo(){
	if(monto_redondeo > (MONTO_REDONDEO_MAX*-1)){
		var monto_impuestos =parseFloat($("#monto_impuesto").val());
		if(monto_impuestos > 0){
			monto_redondeo = redondear(monto_redondeo - 0.01,2);
			monto_impuestos	= redondear(monto_impuestos - 0.01,2);
			$("#monto_impuesto").val(monto_impuestos);
			sumaTotales();
		}
	}
		
}

function obtieneImpuesto(){
	$.getJSON("get_monto_impuesto", {
		id_plantilla : $("#cmb_impuesto").val(),
		sub_total:parseFloat($("#monto_subtotal").val())
	}, function(rpta) {
		$("#monto_impuesto").val(rpta.respuesta);
		sumaTotales();
	});
}

function muestraInversion() {
	$(".panel_proyecto>td>input").attr("value","");
	$(".panel_unidades>td>input").attr("value","");
	
	if ($("#chk_inversion").attr("checked")) {
		$(".panel_proyecto>td>input").addClass("required");
		$(".panel_unidades>td>input").removeClass("required");
		
		$(".panel_unidades").fadeOut("slow");
		$(".panel_proyecto").fadeIn("slow");
	} else {
		$(".panel_proyecto>td>input").removeClass("required");
		$(".panel_unidades>td>input").addClass("required");
		
		$(".panel_unidades").fadeIn("slow");
		$(".panel_proyecto").fadeOut("slow");

	}
}

function muestraPanelUsuario() {
	$(".panel_proveedor>td>input").attr("value","");
	$(".panel_usuario>td>input").attr("value","");
	if ($("#rb_usuario").attr("checked")) {
		$(".panel_usuario>td>input").addClass("required");
		$(".panel_proveedor>td>input").removeClass("required");
		
		$(".panel_proveedor").fadeOut("slow");
		$(".panel_usuario").fadeIn("slow");
	} else {
		
		$(".panel_proveedor>td>input").addClass("required");
		$(".panel_usuario>td>input").removeClass("required");
		
		$(".panel_proveedor").fadeIn("slow");
		$(".panel_usuario").fadeOut("slow");
	}
}


function limpiar(){
	 $("#frmSumi").reset();
}


function validaTipoSumi(tipo_sumi){
	if(detalle.length==0){
		return true;
	}
	if (detalle[0].tipo_suministro==tipo_sumi)
		return true;
	else
		return false;
}

/*----------fin funciones------------*/

function autocomplete_proyectos() {
	$("#desc_proyectos")
			.autocomplete(
					'get_proyectos',
					{
						multiple : true,
						dataType : "json",
						parse : function(data) {
							return $.map(data, function(row) {
								return {
									data : row,
									value : row.id_proyecto,
									result : row.nom_proyecto
								};
							});
						},
						formatItem : function(item) {
							return "<table cellspacing='0' cellspadding='0' width='100%' border='0'><tr><td width='90%'>"
									+ item.nom_proyecto
									+ "</td><td width='10%'>"
									+ item.id_proyecto + "</td></tr></table>";
						}
					}).result(function(e, item) {
				$("#cod_proyecto").val(item.id_proyecto);
				$("#desc_proyectos").val(item.nom_proyecto);

			});
}


function autocomplete_cuentas_digito(ppp){
	$("#ctaCtble").autocomplete('get_cuentas_digito', {
		multiple: true,
		dataType: "json",
		parse: function(data) {
			return $.map(data, function(row) {
				return {
					data: row,
					value: eval(ppp),
					result: row.descripcion
				};
			});
		},
		formatItem: function(item) {
			return "<table cellspacing='0' cellspadding='0' width='100%' border='0'><tr><td width='90%'>"+item.idCuentaContable+"</td></tr></table>";
		} 
	}).result(recibeData);
}

function recibeData(e, item){
	$("#ctaCtble").val($.trim(item.idCuentaContable));
	$("#descrip_cuenta").val($.trim(item.descripcion));	
	$('#descrip_cuenta').focus();
}

function recibeProveedor(e, item){
	$("#ruc_proveedor").val($.trim(item.codProveedor));
	$("#desc_proveedor").val($.trim(item.razon));	
}

function recibeTrabajador(e, item){
	$("#dni_trabajador").val($.trim(item.dni));
	$("#desc_trabajador").val($.trim(item.full_nombre));	
}

function recibeUnidades(e, item){
	$("#cod_unidad_org").val($.trim(item.codigo));
	$("#desc_unidad_org").val($.trim(item.descripcion));
}

function recibeCentroCosto(e, item){
	$("#cod_centro_costo").val($.trim(item.codigo));
	$("#desc_centro_costos").val($.trim(item.descripcion));
}

function recibeProyecto(e, item){
	$("#cod_proyecto").val(item.id_proyecto);
	$("#desc_proyectos").val(item.nom_proyecto);
}

